package com.gaogzhen.mappers;

import com.gaogzhen.domain.User;
import com.gaogzhen.dto.UserDto;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * @author Administrator
 * @version 1.0
 * @description 对象的映射转换
 * @date 2022-10-29 11:01
 *  entity2Dto
 *  dto2Entity
 */
@Mapper(componentModel = "spring")
public interface UserDtoMapper {
    /**
     * 对象实例
     */

    UserDtoMapper INSTANCE = Mappers.getMapper(UserDtoMapper.class);

    /**
     * entity转换为dto
     * @param source    源
     * @return          相应的dto对象
     */
    UserDto convert2Dto(User source);

    /**
     * entity集合转换为dto集合
     * @param source    源
     * @return          相应的dto对象集合
     */
    List<UserDto> convert2Dto(List<User> source);

    /**
     * dto转换为entity
     * @param source    源
     * @return          相应的entity对象
     */
    User convert2Entity(UserDto source);


    /**
     * dto集合转换为entity集合
     * @param source    源
     * @return          相应的entity对象集合
     */
    List<User> convert2Entity(List<UserDto> source);

}
